﻿(function ($) {
    $.baseAjax = function (url, data, success) {
        $.ajax({
            url: url,
            data: data,
            type: 'post',
            dataType: 'json',
            error:function(a,b){
                debugger;
            },
            success: function (res) {
                success(res);
            }
        })
    }
    $.fn.extend({
        grid: function (opt) {
            var _grid = this.kendoGrid({
                pageable: true,
                scrollable: true,
                navigatable: true,
                columns: opt.columns
            });
            var _defaultOpt = { pageIndex: 1, pageSize: 15 };
            $.extend(_defaultOpt, opt);
            function PageData(index, params) {
                _defaultOpt.pageIndex = params ? params.pageIndex || index : index;
                if (_defaultOpt.pageIndex != index) {
                    index = _defaultOpt.pageIndex;
                }
                _defaultOpt.data = $.extend({}, _defaultOpt.data, params, { pageIndex: _defaultOpt.pageIndex, pageSize: _defaultOpt.pageSize });
                $.baseAjax(_defaultOpt.url, _defaultOpt.data, function (d) {
                    var dataSource = new kendo.data.DataSource({
                        data: d.data,
                        page: _defaultOpt.pageIndex,
                        pageSize: _defaultOpt.pageSize,
                        serverPaging: true,
                        change: function (e) {
                            if (e.sender._page != index)
                                PageData(e.sender._page);
                        },
                        schema: {
                            total: function (response) {
                                return d.total;
                            }
                        }
                    });
                    _grid.data("kendoGrid").setDataSource(dataSource);
                })
            }
            $.extend(this, { load: PageData });
            PageData(_defaultOpt.pageIndex);
            return this;
        },
        dialog: function (opts) {
            var _win = this.data("kendoWindow");
            var _opts = $.extend({ visible: false, modal: true }, opts);
            if (!_win) {
                _win = this.kendoWindow(_opts);
                _win = _win.data("kendoWindow");
                _win.center();
            } else {
                _win.refresh();
            }
            _win.open();
            return _win;
        }
    })
})(jQuery);



//function Page(index, name, pass) {
//    debugger;
//    var d = {
//        data: [{
//            OrderID: 10248,
//            CustomerID: "VINET",
//            EmployeeID: 5,
//            OrderDate: new Date(1996, 6, 4, 0, 0, 0, 0),
//            RequiredDate: new Date(1996, 7, 1, 0, 0, 0, 0),
//            ShippedDate: new Date(1996, 6, 16, 0, 0, 0, 0),
//            ShipVia: 3,
//            Freight: 32.3800,
//            ShipName: "Vins et alcools Chevalier",
//            ShipAddress: "59 rue de l'Abbaye",
//            ShipCity: "Reims",
//            ShipRegion: "",
//            ShipPostalCode: "51100",
//            ShipCountry: "France"
//        }], total: '250'
//    };
//    var dataSource = new kendo.data.DataSource({
//        data: d.data,
//        page: index,
//        pageSize: 1,
//        serverPaging: true,
//        change: function (e) {
//            debugger;
//            var data = this.data();
//            if (e.sender._page != index)
//                Page(e.sender._page);
//        },
//        schema: {
//            total: function (response) {
//                return d.total;
//            }
//        }
//    });
//    var grid = $("#rowSelection").data("kendoGrid");
//    grid.setDataSource(dataSource);
//}
//$('#loadBtn').click(function () {
//    Page(1, '222', 555);
//})